#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName  :binarySearch.py
# @Time      :2021/2/28 21:25
# @Author    :Letquit
"""
文件说明：二分法求数字

"""


def binary_search(list, item):
    low = 0  # low和high用于跟踪要在其中查找的列表部分
    high = len(list) - 1

    while low <= high:  # 只要范围没有缩小到只包含一个元素
        mid = int((low + high) / 2)  # 检查中间的元素
        guess = list[mid]
        if guess == item:   # 找到了元素
            return guess
        if guess > item:    # 猜的数字大了
            high = mid - 1
        else:   # 猜的数字小了
            low = mid + 1
    return None     # 没有指定的元素


my_list = [1, 3, 5, 7, 9]       # 测试

print(binary_search(my_list, 3))    # => 1      索引从0开始
print(binary_search(my_list, -1))   # => None   在python中

if __name__ == "__main__":
    run_code = 0
